এনক্যাপসুলেশন এবং ডেটা হাইডিং

Microsoft Technologies - সি শার্প (C#) - ইন্টারফেস এবং এনক্যাপসুলেশন | NCTB BOOK

এনক্যাপসুলেশন এবং ডেটা হাইডিং সি শার্প (C#) এ অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য। এই বৈশিষ্ট্যগুলোর মাধ্যমে প্রোগ্রামের ডেটাকে নিরাপদ রাখা এবং নির্দিষ্ট নিয়ম অনুসারে অ্যাক্সেস নিয়ন্ত্রণ করা সম্ভব হয়।

এনক্যাপসুলেশন (Encapsulation)

এনক্যাপসুলেশন হলো একটি প্রক্রিয়া, যার মাধ্যমে ডেটা এবং মেথডকে একটি ক্লাসের মধ্যে বাঁধা হয়। এটি ডেটা এবং কার্যকলাপকে একটি সত্তা হিসেবে রাখে এবং বাইরের অংশ থেকে সরাসরি অ্যাক্সেস রোধ করে। ফলে ডেটা অ্যাক্সেস এবং আপডেট করার জন্য নির্দিষ্ট মেথড বা প্রোপার্টি ব্যবহারের প্রয়োজন হয়।

এনক্যাপসুলেশনের মাধ্যমে প্রাইভেট মেম্বারগুলোকে প্রাইভেট রাখা হয় এবং পাবলিক মেথড বা প্রোপার্টির মাধ্যমে ডেটা অ্যাক্সেস করা হয়।

উদাহরণ: এনক্যাপসুলেশন

public class Account
{
    private double balance; // প্রাইভেট ভেরিয়েবল, সরাসরি অ্যাক্সেসযোগ্য নয়

    // ব্যালেন্স চেক করার জন্য একটি পাবলিক মেথড
    public double GetBalance()
    {
        return balance;
    }

    // ব্যালেন্স সেট করার জন্য একটি পাবলিক মেথড
    public void Deposit(double amount)
    {
        if (amount > 0)
        {
            balance += amount;
        }
    }

    public void Withdraw(double amount)
    {
        if (amount > 0 && amount <= balance)
        {
            balance -= amount;
        }
    }
}

উপরের উদাহরণে balance ভেরিয়েবলটি প্রাইভেট রাখা হয়েছে, তাই সরাসরি বাইরের অংশ থেকে সেটি পরিবর্তন করা সম্ভব নয়। Deposit এবং Withdraw মেথডের মাধ্যমে balance এর মান নিয়ন্ত্রিতভাবে পরিবর্তন করা হয়।

এনক্যাপসুলেশনের সুবিধা

  1. ডেটার সুরক্ষা: প্রাইভেট ভেরিয়েবলের মাধ্যমে ডেটা সরাসরি পরিবর্তনের সুযোগ কমে যায়।
  2. রক্ষণাবেক্ষণ সহজ: ডেটা অ্যাক্সেসের জন্য নির্দিষ্ট মেথড ব্যবহার করায় কোডের নিয়ন্ত্রণ থাকে।
  3. কোডের গঠন এবং সংগঠন: মেম্বারদের অ্যাক্সেস নিয়ন্ত্রণ করা যায়, যা কোডের গঠন সহজ করে।

ডেটা হাইডিং (Data Hiding)

ডেটা হাইডিং হলো এমন একটি পদ্ধতি, যার মাধ্যমে প্রাইভেট ডেটা বা প্রোপার্টিকে বাইরের অংশ থেকে লুকিয়ে রাখা হয়। ডেটা হাইডিং এনক্যাপসুলেশনের মাধ্যমে নিশ্চিত করা হয়। প্রাইভেট ডেটা সরাসরি অ্যাক্সেসযোগ্য না হওয়ার কারণে ডেটার নিরাপত্তা নিশ্চিত হয়।

উদাহরণ: ডেটা হাইডিং

public class Employee
{
    private double salary; // প্রাইভেট প্রোপার্টি, বাইরের অংশ থেকে সরাসরি অ্যাক্সেসযোগ্য নয়

    // প্রাইভেট ডেটা অ্যাক্সেসের জন্য পাবলিক প্রোপার্টি
    public double Salary
    {
        get { return salary; }
        set 
        {
            if (value > 0)
            {
                salary = value;
            }
        }
    }
}

এখানে salary প্রাইভেট প্রোপার্টি হিসেবে সংজ্ঞায়িত করা হয়েছে। বাইরের অংশ থেকে সরাসরি salary অ্যাক্সেসযোগ্য নয়; বরং পাবলিক Salary প্রোপার্টির মাধ্যমে এই ডেটা নিয়ন্ত্রিতভাবে সেট বা রিটার্ন করা যায়।

ডেটা হাইডিং এর প্রয়োজনীয়তা

  1. নিরাপত্তা: প্রাইভেট ভেরিয়েবল বা প্রোপার্টি ব্যবহারের মাধ্যমে ডেটার উপর সরাসরি অ্যাক্সেস নিয়ন্ত্রণ করে, যা ডেটাকে নিরাপদ রাখে।
  2. ডেটার বৈধতা: বাইরের অংশ থেকে ডেটার অপ্রত্যাশিত পরিবর্তন রোধ করে।
  3. কোডের নিয়ন্ত্রণ: ডেটা অ্যাক্সেসের জন্য নির্দিষ্ট নিয়ম অনুসরণ করতে বাধ্য করে।

উদাহরণ প্রোগ্রাম: এনক্যাপসুলেশন এবং ডেটা হাইডিং একসাথে ব্যবহার

using System;

namespace EncapsulationAndDataHidingExample
{
    public class Student
    {
        private string name;   // প্রাইভেট ভেরিয়েবল, সরাসরি অ্যাক্সেসযোগ্য নয়
        private int age;

        // প্রাইভেট ভেরিয়েবলের জন্য পাবলিক প্রোপার্টি
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        public int Age
        {
            get { return age; }
            set 
            {
                if (value >= 0) // ডেটা যাচাই
                {
                    age = value;
                }
            }
        }

        public void DisplayInfo()
        {
            Console.WriteLine("Name: " + Name);
            Console.WriteLine("Age: " + Age);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Student student = new Student();

            // প্রাইভেট ভেরিয়েবল অ্যাক্সেস না করেই ডেটা সেট
            student.Name = "Alice";
            student.Age = 20;

            student.DisplayInfo();
        }
    }
}

আউটপুট

Name: Alice
Age: 20

এনক্যাপসুলেশন এবং ডেটা হাইডিং এর পার্থক্য

বৈশিষ্ট্যএনক্যাপসুলেশনডেটা হাইডিং
উদ্দেশ্যডেটা এবং মেথডকে একত্রে বাঁধাডেটাকে বাইরের অংশ থেকে লুকিয়ে রাখা
অ্যাক্সেস নিয়ন্ত্রণপ্রাইভেট এবং পাবলিক মেম্বার ব্যবহারশুধুমাত্র প্রাইভেট মেম্বার ব্যবহার
উদাহরণপ্রাইভেট ভেরিয়েবল ও পাবলিক মেথডপ্রাইভেট প্রোপার্টি বা ভেরিয়েবল

সারসংক্ষেপ

সি শার্পে এনক্যাপসুলেশন এবং ডেটা হাইডিং প্রোগ্রামের ডেটাকে নিরাপদ রাখতে এবং নিয়ন্ত্রিত অ্যাক্সেস নিশ্চিত করতে সহায়ক। এনক্যাপসুলেশনের মাধ্যমে প্রোগ্রামে ডেটা ও মেথড একত্রে রাখা হয়, আর ডেটা হাইডিং এর মাধ্যমে প্রাইভেট ডেটাকে বাইরের অংশ থেকে লুকিয়ে রাখা যায়। এই ধারণাগুলো প্রোগ্রামিংয়ে নিরাপত্তা এবং কোডের গঠনশীলতা নিশ্চিত করে।

Content added By
Promotion